// import com.alibaba.druid.DbType;
// import com.alibaba.druid.sql.ast.SQLName_ptr;
// import com.alibaba.druid.sql.ast.statement.SQLAlterStatement;
// import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;

// import java.util.HashMap;
// import java.util.Map;
#pragma once
#include "MySqlStatementImpl.h"
#include "../../../../ast/statement/SQLAlterStatement.h"

class MySqlCreateExternalCatalogStatement : virtual public MySqlStatementImpl, virtual public SQLAlterStatement
{
public:
  SQLName_ptr name;

  BOOL_ptr ifNotExists;

  std::shared_ptr<std::map<SQLName_ptr, SQLName_ptr>> properties;
  SQLName_ptr comment;

  MySqlCreateExternalCatalogStatement();
  SHAREDOBJECT(MySqlCreateExternalCatalogStatement);

  SQLName_ptr getName();

  void setName(SQLName_ptr name);

  SQLName_ptr getComment();

  void setComment(SQLName_ptr comment);

  std::shared_ptr<std::map<SQLName_ptr, SQLName_ptr>> getProperties();

  BOOL_ptr isIfNotExists();

  void setIfNotExists(BOOL_ptr ifNotExists);

  void accept0(MySqlASTVisitor_ptr visitor);
};
